package com.lanxiao.cloud.modules.oauth.application.dto;

import com.lanxiao.cloud.common.core.enums.MethodEnum;
import com.lanxiao.cloud.common.core.enums.StateEnum;
import com.lanxiao.cloud.modules.oauth.infrastructure.enums.ButtonEventEnum;
import com.lanxiao.cloud.modules.oauth.infrastructure.enums.PositionEnum;
import com.lanxiao.cloud.modules.oauth.infrastructure.enums.TypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotNull;

/**
 * @author ：qiaoliang
 * @date ：2021-09-15
 */
@ApiModel("修改角色请求模型")
public class PermissionCmdUpdate {

  @ApiModelProperty(value = "父级ID")
  private Long parentId;
  @ApiModelProperty(value = "名称")
  private String title;
  @ApiModelProperty(value = "标识")
  private String mark;
  @ApiModelProperty(value = "类型")
  private TypeEnum type;
  @ApiModelProperty(value = "请求url")
  private String url;
  @ApiModelProperty(value = "请求类型")
  private MethodEnum method;
  @ApiModelProperty(value = "排序")
  private int sort;
  @ApiModelProperty(value = "状态")
  private StateEnum state;
  @ApiModelProperty(value = "图标")
  private String icon;
  @ApiModelProperty(value = "按钮位置")
  private PositionEnum position;
  @ApiModelProperty(value = "按钮事件类型")
  private ButtonEventEnum eventType;
  @ApiModelProperty(value = "按钮事件")
  private String event;
  @ApiModelProperty(value = "路由地址")
  private String path;
  @ApiModelProperty(value = "路由路径")
  private String component;
  @ApiModelProperty(value = "路由名称")
  private String name;
  @ApiModelProperty(value = "重定向地址")
  private String redirect;

  private PermissionCmdUpdate() {
  }

  public PermissionCmdUpdate(Long parentId, String title, String mark,
      TypeEnum type, String url, MethodEnum method, int sort,
      StateEnum state, String icon,
      PositionEnum position,
      ButtonEventEnum eventType, String event, String path, String component, String name,
      String redirect) {
    this.parentId = parentId;
    this.title = title;
    this.mark = mark;
    this.type = type;
    this.url = url;
    this.method = method;
    this.sort = sort;
    this.state = state;
    this.icon = icon;
    this.position = position;
    this.eventType = eventType;
    this.event = event;
    this.path = path;
    this.component = component;
    this.name = name;
    this.redirect = redirect;
  }

  public Long getParentId() {
    return parentId;
  }

  public String getTitle() {
    return title;
  }

  public String getMark() {
    return mark;
  }

  public TypeEnum getType() {
    return type;
  }

  public String getUrl() {
    return url;
  }

  public MethodEnum getMethod() {
    return method;
  }

  public int getSort() {
    return sort;
  }

  public StateEnum getState() {
    return state;
  }

  public String getIcon() {
    return icon;
  }

  public PositionEnum getPosition() {
    return position;
  }

  public ButtonEventEnum getEventType() {
    return eventType;
  }

  public String getEvent() {
    return event;
  }

  public String getPath() {
    return path;
  }

  public String getComponent() {
    return component;
  }

  public String getName() {
    return name;
  }

  public String getRedirect() {
    return redirect;
  }
}
